package com.crane.oss.school.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.crane.oss.school.bean.request.QueryStudentSkipropeReq;
import com.crane.oss.school.bean.request.studentskiprope.AddStudentSkipropeReq;
import com.crane.oss.school.bean.request.studentskiprope.UpdateStudentSkipropeReq;
import com.crane.oss.school.bean.request.task.QueryHistoryDataReq;
import com.crane.oss.school.bean.request.task.QueryRankReq;
import com.crane.oss.school.bean.resp.HistorySkipRopeResp;
import com.crane.oss.school.bean.resp.RankSkipRopeResp;
import com.crane.oss.school.bean.resp.TaskStudentSkipRopeResp;
import com.crane.oss.school.bean.resp.TodaySkipRopeResp;
import com.crane.oss.school.bean.resp.TopSkipRopeResp;

/**
 * 学生跳绳表
 *
 * @author zhenxing.pi
 * @email ccsu123456@qq.com
 * @date 2023年01月17日 23时03分27秒
 */
public interface StudentSkipropeService {

	/**
	 * 查詢对象
	 * 
	 * @param id
	 * @return
	 */
	TaskStudentSkipRopeResp queryStudentSkiprope(Long id);

	/**
	 * 查询列表
	 * 
	 * @param request
	 * @return
	 */
	IPage<TaskStudentSkipRopeResp> queryList(QueryStudentSkipropeReq request);

	/**
	 * 保持对象
	 * 
	 * @param request
	 * @return
	 */
	int save(AddStudentSkipropeReq request);

	/**
	 * 修改对象
	 * 
	 * @param request
	 * @return
	 */
	int update(UpdateStudentSkipropeReq request);

	/**
	 * 删除对象
	 * 
	 * @param id
	 * @return
	 */
	int delete(Long id);
	
	/**
	 * 查询学生今日跳绳统计数据
	 * @param studentId
	 * @return
	 */
	TodaySkipRopeResp queryTodaySkipRope(Long studentId);
	
	/**
	 * 根据跳绳类型查询学生最近一次跳绳练习
	 * @param studentId
	 * @return
	 */
	List<TopSkipRopeResp> queryTopSkipRope(Long studentId);
	
	/**
	 * 查询历史数据
	 * @param request
	 * @return
	 */
	HistorySkipRopeResp queryHistoryData(QueryHistoryDataReq request);
	
	/**
	 * 查询排行榜
	 * @param request
	 * @return
	 */
	RankSkipRopeResp queryRank(QueryRankReq request);

}
